package com.zues.samples.util;

import java.io.FileInputStream;
import java.io.InputStream;
import java.text.DecimalFormat;

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ExcelTempDemo {

	@SuppressWarnings("static-access")
	//对Cell 中数据类型的判定转换
	public static String getValue(XSSFCell xssfRow) {
		//如果为null 则 空
		if (xssfRow == null) {
			return "";
		}
		//如果为布尔值 则输出布尔，为精度小数点则输出double，字符串则输出字符
		if (xssfRow.getCellType() == xssfRow.CELL_TYPE_BOOLEAN) {
			return String.valueOf(xssfRow.getBooleanCellValue());
		} else if (xssfRow.getCellType() == xssfRow.CELL_TYPE_NUMERIC) {
			DecimalFormat df = new DecimalFormat("0");
			return df.format(xssfRow.getNumericCellValue());
		} else {
			return String.valueOf(xssfRow.getStringCellValue());
		}

	}

	public static void main(String[] args) {
		//文件路径
		String path = "E://test.xlsx";
		try {
		    //创建Excel 文件的输入流对象
			InputStream is = new FileInputStream(path);
			
			//XSSFWorkbook 就代表一个Excel文件
			//创建其对象 就能打开这个Excel文件
			XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is);

			//读文件中的Sheet
			for (int numSheet = 0; numSheet < xssfWorkbook.getNumberOfSheets(); numSheet++) {
				//XSSFSheet 代表Excel文件中的一个sheet表格
				//我们通过getSheetAt() 获取指定的Sheet表格
				//索引从0开始计算
				XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(numSheet);
				if (xssfSheet == null) {
					continue;
				}
				//读Sheet中的Row,因为一般第一行为标题行 所以从第二行开始索引为1
				for (int numRow = 1; numRow <= xssfSheet.getLastRowNum(); numRow++) {
					XSSFRow xssfRow = xssfSheet.getRow(numRow);
					//
					if (xssfRow != null) {
						XSSFCell userName = xssfRow.getCell(0);
						XSSFCell password = xssfRow.getCell(1);
						XSSFCell age = xssfRow.getCell(2);
						XSSFCell sex = xssfRow.getCell(3);
						XSSFCell email = xssfRow.getCell(4);
						XSSFCell remark = xssfRow.getCell(5);

						System.out.println(getValue(userName));
						System.out.println(getValue(password));
						System.out.println(getValue(age));
						System.out.println(getValue(sex));
						System.out.println(getValue(email));
						System.out.println(getValue(remark));
					}
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}
